#ifndef RESPONSE_H
#define RESPONSE_H

#include <iostream>
#include <string>
#include <json.hpp>

namespace apollo
{
    class Response
    {
    private:
        nlohmann::json configurations;
        std::string releaseKey = "";
        std::string cluster = "";
        std::string appId = "";
        std::string namespaceName = "";

    public:
        const nlohmann::json &getConfiguration() const
        {
            return configurations;
        }
        void setConfigurations(const nlohmann::json &configurations)
        {
            this->configurations = configurations;
        }

        const std::string &getReleaseKey() const
        {
            return releaseKey;
        }
        void setReleaseKey(const std::string &releaseKey)
        {
            this->releaseKey = releaseKey;
        }

        const std::string &getCluster()
        {
            return cluster;
        }
        void setCluster(const std::string &cluster)
        {
            this->cluster = cluster;
        }

        const std::string &getAppId()
        {
            return appId;
        }
        void setAppId(const std::string &appId)
        {
            this->appId = appId;
        }

        const std::string &getNamespace()
        {
            return namespaceName;
        }
        void setNamespaceName(const std::string &namespaceName)
        {
            this->namespaceName = namespaceName;
        }

        Response() {}
        ~Response() {}

        friend void to_json(nlohmann::json &j, const Response &response);
        friend void from_json(const nlohmann::json &j, Response &response);
    };

} // namespace apollo
#endif /* RESPONSE_H */
